from flask import current_app
from qiniu import Auth, put_data


def upload_image2QINIU(file_data):
    """
    上传图片到七牛云
    :param file_data: 图片的二进制流数据
    :return: 上传到七牛云后的文件名
    """
    # 需要填写你的 Access Key 和 Secret Key
    access_key = current_app.config['QINIU_ACCESS_KEY']
    secret_key = current_app.config['QINIU_SECRET_KEY']

    # 构建鉴权对象
    q = Auth(access_key, secret_key)

    # 七牛云空间名
    bucket_name = current_app.config['QINIU_BUCKET_NAME']

    # 指定上传后保存的文件名,None代表不指定
    key = None

    # 生成上传 Token，可以指定过期时间、文件名等
    token = q.upload_token(bucket_name, expires=3600)
    # token = q.upload_token(bucket_name, key, 3600)  # 指定文件名时使用

    ret, info = put_data(token, key, file_data)

    return ret['key']
